package controle.aplicativo.util;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class MontarObjeto {
	/**
	 * Metodo promove a instacia do parametro passado.
	 * 
	 * @param classe
	 *            para instanciar
	 * @return Object instanciado
	 */
	public static Object getNewInstance(Object objeto) {
		Log log = LogFactory.getLog(MontarObjeto.class);
		Object instancia = null;
		try {
			instancia = objeto.getClass().newInstance();
		} catch (Exception ex) {
			log.error(
					"Ocorreu na montagem do objeto em {@MontarObjeto} getNewInstance(Object objeto) ",
					ex);
		}
		return instancia;
	}

	/**
	 * Metodo promove a instacia do parametro passado.
	 * 
	 * @param classe
	 *            para instanciar
	 * @return Object instanciado
	 */
	public static Object getNewInstance(Class<?> classe) {
		Object instancia = null;
		Log log = LogFactory.getLog(MontarObjeto.class);
		try {
			instancia = classe.newInstance();
		} catch (Exception ex) {
			log.error(
					"Ocorreu na montagem do objeto em {@MontarObjeto} getNewInstance(Object objeto) ",
					ex);
		}
		return instancia;
	}

}
